﻿using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sakura.Games.StgFramework
{
	/// <summary>
	/// 表示带有键的项目。
	/// </summary>
	/// <typeparam name="TKey">键的类型。</typeparam>
	public interface IKeyedItem<TKey>
	{
		/// <summary>
		/// 获取数据的键。
		/// </summary>
		TKey Key
		{
			get;
		}

		/// <summary>
		/// 当键即将发生变化时发生。
		/// </summary>
		event CancelEventHandler KeyChanging;

		/// <summary>
		/// 当键发生变化时发生。
		/// </summary>
		event EventHandler KeyChanged;
	}
}
